/**
 * 
 */
package ao.com.bna.controle;

import java.math.BigDecimal;
import java.util.Map;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import ao.com.bna.beans.TipoMoeda;
import ao.com.bna.dao.TipoMoedaDao;
import ao.com.bna.util.BeanFactory;

/**
 * @author HMAUREI
 *
 */
@ManagedBean(name="tipoMoeda")
@SessionScoped
public class TipoMoedaControle {

	private TipoMoeda tipoMoedaEntity = new TipoMoeda();

	private TipoMoedaDao tipoMoedaDao = (TipoMoedaDao) BeanFactory.getBean("tipoMoedaDao", TipoMoedaDao.class);
	private DataModel model;

	
	/**
	 * @see Metodo ListaTipoMoedas retorna todos os Tipo Moeda.
	 */
	public DataModel getListaTipoMoedas() {
        model = new ListDataModel(tipoMoedaDao.listar());
        return model;

    }

	
	/**
	 * @see Metodo salvarTipoMoeda
	 */
	 public String salvarTipoMoeda() {
	        String s = "listaTipoMoeda";
	        try {
	        	
	        	tipoMoedaDao.gravar(tipoMoedaEntity);
	            
	        	tipoMoedaEntity.setMoeda("");

	            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"SALVOU COM SUCESSO","TipoMoeda"));

	        } catch (Exception e) {
	            e.printStackTrace();
	            s = "falhou";
	            // mostrar o erro no faces
	            String msg = e.getCause().toString();
	            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL,msg,"Tipo Moeda"));

	        }
	        return s;
	    }

	
	     /**
		 * @see Metodo navegaCriarMulta vai para pagina criarMulta.xhtml
		 */
	 public String navegaCriarTipoMoeda() {
	        String t = "criaTipoMoeda";
	        
	        tipoMoedaEntity.setMoeda("");

	        // retorna o nome da pagina Criar TipoMoeda
	        return t;

	    }

	 /**
      * @see Metodo editarTipoMoeda 
	 */
	 public String editarTipoMoeda() {
	        String r = "listaTipoMoeda";
	        try {
	        	tipoMoedaDao.actualiza(tipoMoedaEntity);
	            

	           FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"EDITOU COM SUCESSO","TipoMoeda"));

	        } catch (Exception e) {
	            e.printStackTrace();
	            r = "falhou";
	            // mostrar o erro no faces
	            String msg = e.getCause().toString();
	            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL,msg,"TipoMoeda"));

	        }
	        return r;
	    }


	 /**
      * @see Metodo navegaEditarTipoMoeda vai a pagina editarTipoMoeda.xhtml 
	 */
     public String navegaEditarTipoMoeda() {
    	 
    FacesContext context = FacesContext.getCurrentInstance();
    Map requestParameterMap = (Map) context.getExternalContext().getRequestParameterMap();
    // aqui tem que ser long porque o inteiro que ele recebe e do tipo long
    // o valor do get tem q ser igual ao valor d f:param na pagina listaTipoMoeda.xhtml
    Long idTipoMoeda = Long.parseLong(requestParameterMap.get("idTipoMoeda").toString());
//    this.user = userDao.getUser(userId);
    this.tipoMoedaEntity= tipoMoedaDao.obterPorID(idTipoMoeda);
   
    return "editarTipoMoeda";
     }
     
     /**
      * @see Metodo apagarTipoMoeda
	 */
     public String apagarTipoMoeda() {
	        String r = "listaTipoMoeda";
	        try {
	        	tipoMoedaDao.remover(tipoMoedaEntity);
	            
	           FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"APAGOU COM SUCESSO","TipoMoeda"));

	        } catch (Exception e) {
	            e.printStackTrace();
	            r = "falhou";
	            // mostrar o erro no faces
	            String msg = e.getCause().toString();
	            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL,msg,"TipoMoeda"));

	        }
	        return r;
	    }
    
     
     /**
      * @see Metodo navegaApagarTipoMoeda 
	 */
    public String navegaApagarTipoMoeda() {
   	 
        FacesContext context = FacesContext.getCurrentInstance();
        Map requestParameterMap = (Map) context.getExternalContext().getRequestParameterMap();
        // aqui tem que ser long porque o inteiro que ele recebe e do tipo long
        // o valor do get tem q ser igual ao valor d f:param na pagina listaMulta.xhtml
        Long idTipoMoeda = Long.parseLong(requestParameterMap.get("idTipoMoeda").toString());
        // this.user = userDao.getUser(userId);
        this.tipoMoedaEntity= tipoMoedaDao.obterPorID(idTipoMoeda);
       
        return "apagarTipoMoeda";
}


	public TipoMoeda getTipoMoedaEntity() {
		return tipoMoedaEntity;
	}
	public void setTipoMoedaEntity(TipoMoeda tipoMoedaEntity) {
		this.tipoMoedaEntity = tipoMoedaEntity;
	}
	
	
	
	public TipoMoedaDao getTipoMoedaDao() {
		return tipoMoedaDao;
	}
	public void setMultaDao(TipoMoedaDao tipoMoedaDao) {
		this.tipoMoedaDao = tipoMoedaDao;
	}
	
	
	
	
}
